﻿
Imports <xmlns:DataSet1="http://tempuri.org/DataSet1.xsd">

Public Class AnadeComentario

    'XML
    Private leccionXML As XElement
    Private pathFicheroXML As String
    'BD
    Private contexto As InterfazNegocio.TiposDatosSTE.ContenedorEntidades
    Private libro As New TiposDatosSTE.Libro
    Private seccion As New TiposDatosSTE.Seccion
    Private leccion As New TiposDatosSTE.Leccion

    Public Sub Procesa(ByVal pathFicheroXML As String)

        Me.pathFicheroXML = pathFicheroXML

        Dim x As XElement = XElement.Load(pathFicheroXML)
        leccionXML = x.<DataSet1:Leccion>.Single

        TrataLibro()
        TrataSeccion()
        TrataLeccion()
        TrataEjercicios()

        'Trata los comentarios
        contexto = New InterfazNegocio.TiposDatosSTE.ContenedorEntidades
        AnadeComentarios()
        'Guarda los cambios a base de datos
        contexto.SaveChanges()
        contexto.Dispose()

    End Sub


#Region "Libro"

    Private Sub TrataLibro()
        Dim nivelXML As XElement = leccionXML.<DataSet1:Nivel>.Single
        Dim volumenXML As XElement = leccionXML.<DataSet1:Volumen>.Single

        libro.Nivel = nivelXML.Value
        libro.Volumen = CInt(volumenXML.Value)

    End Sub

#End Region

#Region "Seccion"

    Private Sub TrataSeccion()

        Dim tipoEjerXML As XElement = leccionXML.<DataSet1:TipoEjercicio>.Single
        seccion.TipoEjercicio = tipoEjerXML.Value

    End Sub

#End Region

#Region "Leccion"

    Private Sub TrataLeccion()

        Dim temaXML As XElement = leccionXML.<DataSet1:Tema>.Single

        leccion.Libro = libro
        leccion.Seccion = seccion
        leccion.Tema = temaXML.Value

    End Sub

#End Region

#Region "Ejercicios"

    Private Sub TrataEjercicios()

        Dim frases As XElement = leccionXML.<DataSet1:Frases>.Single
        Dim numEjercicio As Integer = 1
        For Each frase As XElement In frases.<DataSet1:Frase>
            Dim ejercicio As New TiposDatosSTE.Ejercicio

            ejercicio.Leccion = leccion

            ejercicio.Castellano = frase.<DataSet1:Castellano>.Single.Value.TrimStart.TrimEnd
            ejercicio.Ingles = frase.<DataSet1:Ingles>.Single.Value.TrimStart.TrimEnd
            ejercicio.Ingles = ejercicio.Ingles.Replace("’", "'")

            If frase.<DataSet1:Comentarios>.Count > 0 Then
                ejercicio.Comentario = frase.<DataSet1:Comentarios>.Single.Value.TrimStart.TrimEnd
            End If

        Next

    End Sub

#End Region

    Private Sub AnadeComentarios()

        For Each ejercicio In leccion.Ejercicios
            If ejercicio.Comentario <> String.Empty Then

                Try

                    Dim c As String = ejercicio.Castellano
                    Dim n As String = ejercicio.Leccion.Libro.Nivel
                    Dim t As String = ejercicio.Leccion.Tema
                    Dim v As Integer = ejercicio.Leccion.Libro.Volumen
                    Dim te As String = ejercicio.Leccion.Seccion.TipoEjercicio

                    Dim q = From e In contexto.Ejercicios
                            Where e.Castellano = c And
                            e.Nivel = n And
                            e.Tema = t And
                            e.Volumen = v And
                            e.TipoEjercicio = te

                    Dim ejer As TiposDatosSTE.Ejercicio = q.First
                    ejer.Comentario = ejercicio.Comentario
                Catch ex As Exception
                    MsgBox(ex.ToString)
                End Try

            End If
        Next

    End Sub


End Class

